#ifndef SELECTLEVELSCENE_H
#define SELECTLEVELSCENE_H

#include <QWidget>
#include <QIcon>
#include <QPixmap>
#include <QPainter>
#include <QDebug>
#include <QLabel>
#include <QPushButton>
#include <QFile>

#include "constant.h"
#include "map-config.h"
#include "click-button.h"
#include "slide-button.h"
#include "play-game-scene.h"

namespace Ui {
class SelectLevelScene;
}

class SelectLevelScene : public QWidget
{
    Q_OBJECT

public:
    explicit SelectLevelScene(QWidget *parent = nullptr);

    ~SelectLevelScene();

private:
    Ui::SelectLevelScene *ui;

    MapConfig config;

public:
    ClickButton *back_button;

private:
    // 重写绘画事件
    void paintEvent(QPaintEvent *) override;

private:
    // 项目UI初始化
    void initUi();

    // 项目UI数据初始化
    void initUiData();

    // 项目数据初始化
    void initData();

    // 项目事件连接初始化
    void initConnect();

private:
    // 创建关卡按钮
    QPushButton *createLevelButton(QString image_pathname);

    // 创建关卡标签
    QLabel *createLevelLabel(int level);
};

#endif // SELECTLEVELSCENE_H
